package com.hrpc.serialize.impl;

import com.alibaba.fastjson2.JSON;
import com.hrpc.exceptions.SerializeException;
import com.hrpc.serialize.Serialize;

import java.io.*;

/**
 * JSON有一个问题，不支持   String.class 这种转为二进制，因为这里只有Java语言是
 * 这样定义的，想使用JSON，必须要定义一种方法或者使用中间件
 */

public class JSONSerializeImpl implements Serialize {
    @Override
    public byte[] serialize(Object object) {
        if (object == null){
            return null;
        }
        byte[] bytes = JSON.toJSONBytes(object);
        return bytes;
    }

    @Override
    public <T> T deSerialize(byte[] bytes, Class<T> clazz) {
        if (bytes == null ||clazz == null){
            return null;
        }
        T t = JSON.parseObject(bytes, clazz);
        return t;
    }
}
